package com.smart4j.chapter.common.util;

import java.text.ParseException;
import java.util.Date;

import org.apache.commons.lang3.time.DateFormatUtils;

/**
 * description: DateUtils 实现常用日期格式转换。 
 * @version v1.0
 * @author w
 * @date 2018年8月12日下午12:15:15
 *
 */

public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
	
	private DateUtils(){}
	
	private static final String DEFAULT_PATTERN="yyyy-MM-dd";
	
	/**
	 * description: 对创建日期进行转换 。 String  parse java.util.Date 
	 * @param dateStr  日期格式字符串
	 * @param pattern  日期格式 如： yyyy-MM-dd 
	 * @return
	 * Date
	 * @version v1.0
	 * @author w
	 * @date 2018年8月12日 下午12:19:13
	 *
	 */
	public static Date parse(String dateStr,String ...pattern){
		Date  d = null ;
		if(pattern != null && pattern.length > 0){
			try {
				d = DateUtils.parseDate(dateStr, pattern[0]);
			} catch (ParseException e) {
				System.err.println("date parse error ...");
			}
		}else{
			try {
				d = DateUtils.parseDate(dateStr,DEFAULT_PATTERN);
			} catch (ParseException e) {
				System.err.println("date parse error ...");
			}
		}
		return d ; 
	}
	
	/**
	 * description: 将日期转换称为字符串。 java.util.Date convert String 
	 * @param date 日期
	 * @param pattern 要转换的格式   example: yyyy-MM-dd hh:MM:ss
	 * @return
	 * String
	 * @version v1.0
	 * @author w
	 * @date 2018年8月12日 下午12:26:09
	 *
	 */
	public static String formatDate(Date date ,String ...pattern){
		if(null != pattern && pattern.length > 0){
			return DateFormatUtils.format(date, pattern[0]);
		}
		return DateFormatUtils.format(date, DEFAULT_PATTERN);
	}
	
	/**
	 * description: 获取当前时间 yyyy-MM-dd 格式
	 * @return
	 * String
	 * @version v1.0
	 * @author w
	 * @date 2018年8月12日 下午12:28:15
	 */
	public static String getTime(){
		return formatDate(new Date());
	}
	
}
